<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>02.const</title>
</head>
<body>

    <script>
     /**
      * 定义变量  3中
      *   var  let  const
      *   const  > let  > var
      */

         /**
         *  1. 不允许重复声明；
            2. 块儿级作用域（局部变量）；
            3. 不存在变量提升；  当前作用域变量自动提升到最前面
            4. 值不允许修改,必须要赋值初始值
               如果修饰的是引用数据类型： 不允许修改引用类型的地址 但是可以修改其值
                   
         */
        // const a = 10;
        // const a = 10;

        // {
        //     const a = 10;
        // }
        // console.log(a);

        // function func() {
        //     console.log(a);
        //     const a = 10;
        // }
        // func()

        let a = 10;
        a = 20;
        console.log(a);

        // const b = 10;
        // b = 20;

        // let c;
        // console.log(c);
        // const d=undefined;
        // console.log(d);

        const obj = {
            name:"小明",
            age:18
        }
        // 只表示改变原对象的值 但是地址并没有发生改变
        // obj.name = "小红"

        //  重新赋值 表示 改变原有数据的地址
        // obj = {
        //     name:"小红",
        //     age:18
        // }
    </script>
    
</body>
</html>